#pragma once


class NLinearPacketQueue;

class NPacketHandler 
{
	public:
		virtual unsigned int GetOwnerID(void) = 0;
		virtual int		OnProcess( void );
		virtual int		OnRecvHook( int, char * ) { return 0; }
		virtual	void	OnRecvOverflow( int ) {};
		virtual	void	OnRecv( int ) {};
		virtual	void	OnClose( void ) {};
		virtual	void	SetLastError( DWORD = 0 ) {};
		virtual void	AddSendBytes( int ) {};
		void			Reset( void ); 		
		virtual void	SetQueue( NLinearPacketQueue *queue );
		

	public:
		explicit NPacketHandler();
		virtual ~NPacketHandler();

	protected:		
		NLinearPacketQueue*	m_recvQueue;
		
};